namespace devtm.Aop.Emit
{
    using System;
    

    [Serializable]
    public class EmitIndexerExpression : EmitExpression
    {
        private EmitExpressionCollection indices;
        private EmitExpression targetObject;


        public EmitIndexerExpression()
        {
        }

        public EmitIndexerExpression(EmitExpression targetObject, params EmitExpression[] indices)
        {
            this.targetObject = targetObject;
            this.indices = new EmitExpressionCollection();
            this.indices.AddRange(indices);
        }

        public EmitExpressionCollection Indices
        {
            get
            {
                if (this.indices == null)
                {
                    this.indices = new EmitExpressionCollection();
                }
                return this.indices;
            }
        }

        public EmitExpression TargetObject
        {
            get
            {
                return this.targetObject;
            }
            set
            {
                this.targetObject = value;
            }
        }



        
    }
}
